1. Field
The present systems, methods, and apparatus relate to the implementation of a quantum processor in the automatic recognition of an image, such as a facial image, from a database of images.
2. Description of the Related Art
A Turing machine is a theoretical computing system, described in 1936 by Alan Turing. A Turing machine that can efficiently simulate any other Turing machine is called a Universal Turing Machine (UTM). The Church-Turing thesis states that any practical computing model has either the equivalent or a subset of the capabilities of a UTM.
A quantum computer is any physical system that harnesses one or more quantum effects to perform a computation. A quantum computer that can efficiently simulate any other quantum computer is called a Universal Quantum Computer (UQC).
In 1981 Richard P. Feynman proposed that quantum computers could be used to solve certain computational problems more efficiently than a UTM and therefore invalidate the Church-Turing thesis. See e.g., Feynman R. P., “Simulating Physics with Computers”, International Journal of Theoretical Physics, Vol. 21 (1982) pp. 467-488. For example, Feynman noted that a quantum computer could be used to simulate certain other quantum systems, allowing exponentially faster calculation of certain properties of the simulated quantum system than is possible using a UTM.
Approaches to Quantum Computation
There are several general approaches to the design and operation of quantum computers. One such approach is the “circuit model” of quantum computation. In this approach, qubits are acted upon by sequences of logical gates that are the compiled representation of an algorithm. Circuit model quantum computers have several serious barriers to practical implementation. In the circuit model, it is required that qubits remain coherent over time periods much longer than the single-gate time. This requirement arises because circuit model quantum computers require operations that are collectively called quantum error correction in order to operate. Quantum error correction cannot be performed without the circuit model quantum computer's qubits being capable of maintaining quantum coherence over time periods on the order of 1,000 times the single-gate time. Much research has been focused on developing qubits with coherence sufficient to form the basic information units of circuit model quantum computers. See e.g., Shor, P. W. “Introduction to Quantum Algorithms”, arXiv.org:quant-ph/0005003 (2001), pp. 1-27. The art is still hampered by an inability to increase the coherence of qubits to acceptable levels for designing and operating practical circuit model quantum computers.
Another approach to quantum computation involves using the natural physical evolution of a system of coupled quantum systems as a computational system. This approach does not make critical use of quantum gates and circuits. Instead, starting from a known initial Hamiltonian, it relies upon the guided physical evolution of a system of coupled quantum systems wherein the problem to be solved has been encoded in the terms of the system's Hamiltonian, so that the final state of the system of coupled quantum systems contains information relating to the answer to the problem to be solved. This approach does not require long qubit coherence times. Examples of this type of approach include adiabatic quantum computation, cluster-state quantum computation, one-way quantum computation, quantum annealing and classical annealing, and are described, for example, in Farhi, E. et al.,“Quantum Adiabatic Evolution Algorithms versus Simulated Annealing” arXiv.org:quant-ph/0201031 (2002), pp 1-16.
Qubits
As mentioned previously, qubits can be used as fundamental units of information for a quantum computer. As with bits in UTMs, qubits can refer to at least two distinct quantities; a qubit can refer to the actual physical device in which information is stored, and it can also refer to the unit of information itself, abstracted away from its physical device. Examples of qubits include quantum particles, atoms, electrons, photons, ions, and the like.
Qubits generalize the concept of a classical digital bit. A classical information storage device can encode two discrete states, typically labeled “0” and “1”. Physically these two discrete states are represented by two different and distinguishable physical states of the classical information storage device, such as direction or magnitude of magnetic field, current, or voltage, where the quantity encoding the bit state behaves according to the laws of classical physics. A qubit also contains two discrete physical states, which can also be labeled “0” and “1”. Physically these two discrete states are represented by two different and distinguishable physical states of the quantum information storage device, such as direction or magnitude of magnetic field, current, or voltage, where the quantity encoding the bit state behaves according to the laws of quantum physics. If the physical quantity that stores these states behaves quantum mechanically, the device can additionally be placed in a superposition of 0 and 1. That is, the qubit can exist in both a “0” and “1” state at the same time, and so can perform a computation on both states simultaneously. In general, N qubits can be in a superposition of 2N states. Quantum algorithms make use of the superposition property to speed up some computations.
In standard notation, the basis states of a qubit are referred to as the |0> and |1> states. During quantum computation, the state of a qubit, in general, is a superposition of basis states so that the qubit has a nonzero probability of occupying the |0> basis state and a simultaneous nonzero probability of occupying the |1> basis state. Mathematically, a superposition of basis states means that the overall state of the qubit, which is denoted |Ψ>, has the form |Ψ>=a|0>+b|1>, where a and b are coefficients corresponding to the probabilities |a|2 and |b|2, respectively. The coefficients a and b each have real and imaginary components, which allows the phase of the qubit to be characterized. The quantum nature of a qubit is largely derived from its ability to exist in a coherent superposition of basis states and for the state of the qubit to have a phase. A qubit will retain this ability to exist as a coherent superposition of basis states when the qubit is sufficiently isolated from sources of decoherence.
To complete a computation using a qubit, the state of the qubit is measured (i.e., read out). Typically, when a measurement of the qubit is performed, the quantum nature of the qubit is temporarily lost and the superposition of basis states collapses to either the |0> basis state or the |1> basis state and thus regaining its similarity to a conventional bit. The actual state of the qubit after it has collapsed depends on the probabilities |a|2 and |b|2 immediately prior to the readout operation.
Superconducting Qubits
There are many different hardware and software approaches under consideration for use in quantum computers. One hardware approach uses integrated circuits formed of superconducting materials, such as aluminum or niobium. The technologies and processes involved in designing and fabricating superconducting integrated circuits are similar in some respects to those used for conventional integrated circuits.
Superconducting qubits are a type of superconducting device that can be included in a superconducting integrated circuit. Typical superconducting qubits, for example, have the advantage of scalability and are generally classified depending on the physical properties used to encode information including, for example, charge and phase devices, phase or flux devices, hybrid devices, and the like. Superconducting qubits can be separated into several categories depending on the physical property used to encode information. For example, they may be separated into charge, flux and phase devices, as discussed in, for example Makhlin et al., 2001, Reviews of Modern Physics 73, pp. 357-400. Charge devices store and manipulate information in the charge states of the device, where elementary charges consist of pairs of electrons called Cooper pairs. A Cooper pair has a charge of 2e and consists of two electrons bound together by, for example, a phonon interaction. See e.g., Nielsen and Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Cambridge (2000), pp. 343-345. Flux devices store information in a variable related to the magnetic flux through some part of the device. Phase devices store information in a variable related to the difference in superconducting phase between two regions of the phase device. Recently, hybrid devices using two or more of charge, flux and phase degrees of freedom have been developed. See e.g., U.S. Pat. Nos. 6,838,694 and 7,335,909.
Examples of flux qubits that may be used include rf-SQUIDs, which include a superconducting loop interrupted by one Josephson junction, or a compound junction (where a single Josephson junction is replaced by two parallel Josephson junctions), or persistent current qubits, which include a superconducting loop interrupted by three Josephson junctions, and the like. See e.g., Mooij et al., 1999, Science 285, 1036; and Orlando et al., 1999, Phys. Rev. B 60, 15398. Other examples of superconducting qubits can be found, for example, in Il'ichev et al., 2003, Phys. Rev. Lett. 91, 097906; Blatter et al., 2001, Phys. Rev. B 63, 174511, and Friedman et al., 2000, Nature 406, 43. In addition, hybrid charge-phase qubits may also be used.
The qubits may include a corresponding local bias device. The local bias devices may include a metal loop in proximity to a superconducting qubit that provides an external flux bias to the qubit. The local bias device may also include a plurality of Josephson junctions. Each superconducting qubit in the quantum processor may have a corresponding local bias device or there may be fewer local bias devices than qubits. In some embodiments, charge-based readout and local bias devices may be used. The readout device(s) may include a plurality of dc-SQUID magnetometers, each inductively connected to a different qubit within a topology. The readout device may provide a voltage or current. The dc-SQUID magnetometers including a loop of superconducting material interrupted by at least one Josephson junction are well known in the art.
Effective Qubit
Throughout this specification and the appended claims, the terms “effective qubit” and “effective qubits” are used to denote a quantum system that may be represented as a two-level system. Those of skill in the relevant art will appreciate that two specific levels may be isolated from a multi-level quantum system and used as an effective qubit. Furthermore, the terms “effective qubit” and “effective qubits” are used to denote a quantum system comprising any number of devices that may be used to represent a single two-level system. For example, a plurality of individual qubits may be coupled together in such a way that the entire set, or a portion thereof, of coupled qubits represents a single two-level system.
Quantum Processor
A computer processor may take the form of an analog processor, for instance a quantum processor such as a superconducting quantum processor. A superconducting quantum processor may include a number of qubits and associated local bias devices, for instance two or more superconducting qubits. Further detail and embodiments of exemplary quantum processors that may be used in conjunction with the present systems, methods, and apparatus are described in US Patent Publication No. 2006-0225165, U.S. patent application Ser. No. 12/013,192, and U.S. Provisional Patent Application Ser. No. 60/986,554 filed Nov. 8, 2007 and entitled “Systems, Devices and Methods for Analog Processing.”
A superconducting quantum processor may include a number of coupling devices operable to selectively couple respective pairs of qubits. Examples of superconducting coupling devices include rf-SQUIDs and dc-SQUIDs, which couple qubits together by flux. SQUIDs include a superconducting loop interrupted by one Josephson junction (an rf-SQUID) or two Josephson junctions (a dc-SQUID). The coupling devices may be capable of both ferromagnetic and anti-ferromagnetic coupling, depending on how the coupling device is being utilized within the interconnected topology. In the case of flux coupling, ferromagnetic coupling implies that parallel fluxes are energetically favorable and anti-ferromagnetic coupling implies that anti-parallel fluxes are energetically favorable. Alternatively, charge-based coupling devices may also be used. Other coupling devices can be found, for example, in US Patent Publication No. 2006-0147154 and U.S. patent application Ser. No. 12/017,995. Respective coupling strengths of the coupling devices may be tuned between zero and a maximum value, for example, to provide ferromagnetic or anti-ferromagnetic coupling between qubits.
Quantum Annealing
Quantum annealing is a computation method that may be used to find a low-energy state, typically preferably the ground state, of a system. Similar in concept to classical annealing, the method relies on the underlying principle that natural systems tend towards lower energy states because lower energy states are more stable. However, while classical annealing uses classical thermal fluctuations to guide a system to its global energy minimum, quantum annealing may use natural quantum fluctuations, such as quantum tunneling, to reach a global energy minimum more accurately or more quickly. It is known that the solution to a hard problem, such as a combinatorial optimization problem, may be encoded in the ground state of a system and therefore quantum annealing may be used to find the solution to such hard problems.
Adiabatic Quantum Computation
As mentioned previously, adiabatic quantum computation typically involves evolving a system from a known initial Hamiltonian (the Hamiltonian being an operator whose eigenvalues are the allowed energies of the system) to a final Hamiltonian by gradually changing the Hamiltonian. A simple example of an adiabatic evolution is:He=(1−s)Hi+sHf 
where Hi is the initial Hamiltonian, Hf is the final Hamiltonian, He is the evolution or instantaneous Hamiltonian, and s is an evolution coefficient which controls the rate of evolution. The coefficient s goes from 0 to 1, such that at the beginning of the evolution process the evolution Hamiltonian is equal to the initial Hamiltonian and at the end of the process the evolution Hamiltonian is equal to the final Hamiltonian. If the evolution is too fast, then the system can be excited to a higher state, such as the first excited state. In the present systems, methods, and apparatus, an “adiabatic” evolution is considered to be an evolution that satisfies the adiabatic condition, wherein the adiabatic condition is expressed as:{dot over (s)}|<1|dHe/ds|0>|=δg2(s)where {dot over (s)} is the time derivative of s, g(s) is the difference in energy between the ground state and first excited state of the system (also referred to herein as the “gap size”) as a function of s, and δ is a coefficient much less than 1.
The evolution process in adiabatic quantum computing may sometimes be referred to as annealing. The rate that s changes, sometimes referred to as an evolution or annealing schedule, is normally constant and slow enough that the system is always in the instantaneous ground state of the evolution Hamiltonian during the evolution, and transitions at anti-crossings (i.e., when the gap size is smallest) are avoided. Further details on adiabatic quantum computing systems, methods, and apparatus are described in U.S. Pat. No. 7,135,701.
Adiabatic quantum computation is a special case of quantum annealing for which the system begins and remains in its ground state throughout the evolution. Thus, those of skill in the art will appreciate that quantum annealing methods may generally be implemented on an adiabatic quantum computer, and vice versa. Throughout this specification, the term “adiabatic quantum computer” is used to describe a computing system that is designed to perform adiabatic quantum computations and/or quantum annealing.
Optimization Problems
Optimization problems are problems for which one or more objective functions are minimized or maximized over a set of variables, sometimes subject to a set of constraints. For example, the Traveling Salesman Problem (“TSP”) is an optimization problem where an objective function representing, for example, distance or cost, must be optimized to find an itinerary, which is encoded in a set of variables representing the optimized solution to the problem. For example, given a list of locations, the problem may consist of finding the shortest route that visits all locations exactly once. Other examples of optimization problems include Maximum Independent Set (MIS), integer programming, constraint optimization, factoring, prediction modeling, and k-SAT. These problems are abstractions of many real-world optimization problems, such as operations research, financial portfolio selection, scheduling, supply management, circuit design, and travel route optimization. Many large-scale decision-based optimization problems are NP-hard. See e.g., “A High-Level Look at Optimization: Past, Present, and Future” e-Optimization.com, 2000.
Many optimization problems are not solvable using UTMs. Because of this limitation, there is need in the art for computational devices capable of solving computational problems beyond the scope of UTMs. Classical digital computers are generally regarded as being unable to exceed the capabilities of UTMs, and accordingly, are subject to the limits of classical computing that impose unfavorable scaling between problem size and solution time. In accordance with the present systems, methods and apparatus, quantum adiabatic algorithms may be employed to obtain better solutions to these problems than can be achieved with classical optimization algorithms.
Graph Embedding
Graphs are an effective way of representing relationships among entities, and are commonly used in areas such as economics, mathematics, natural sciences and social sciences. While some graphs are simply used as a visual aid, others can be used to represent a problem to be solved. In fact, mapping a problem into graph format can sometimes help solve the problem. Instances of such problems include stock portfolio selection, microwave tower placement, delivery route optimization and other large-scale problems. Quantum computers can be used to solve such problems by way of translation of the original problem to a form that the quantum computer can solve. One method of doing this is through graph embedding, where a graph composed of a set of vertices and a set of edges that connect various vertices, representing a problem to be solved, is mapped into the qubit structure of a quantum processor and then solved.
Graph embedding involves defining a particular drawing of a graph by mapping every node, or vertex, to a point on a plane and every edge to a straight or curved line that connects two nodes. This drawing is not unique, as there can be many permutations of the same graph. The number of ways a graph can be embedded depends on the characteristics and rules of the grid system upon which they are drawn. For example, one grid system can be a two-dimensional lattice. The edges may, for example, be constrained to be in two mutually orthogonal directions (e.g., up-down or left-right). Such a grid system has a connectivity of 4, meaning that each node can have at maximum four edges connected to it, the edges going only in the directions mentioned above. A similar grid system wherein edges can also extend diagonally (e.g., at 45°) and where they can cross is of connectivity 8. One form of graph embedding involves taking a graph drawn on one grid system and drawing an equivalent graph on another grid system.
Graphs that can be embedded can be broken into two types: planar and non-planar. Planar graphs are graphs that can be embedded on a two-dimensional plane such that no two edges intersect. A non-planar graph is a graph where at least two edges intersect. Some forms of graph embedding involve embedding a planar graph into a non-planar graph or attempting to make a non-planar graph as planar as possible, i.e., by reducing the number of intersections. However, some non-planar graphs cannot be embedded into a planar graph. The most famous examples of such graphs are the graphs K5 and K(3, 3). More information on non-planar graphs and their embeddings can be found in Boyer et al., 2004, Journal of Graph Algorithms and Applications 8, pp. 241-273.
A technique of graph embedding into a lattice of qubits is described in Knysh et al., 2005, arXiv.org:quant-ph/0511131. Knysh describes a technique of mapping NP-complete problems into a lattice of qubits and performing adiabatic quantum computation to solve the problem. However, Knysh uses constant couplings between qubits and only nearest neighbor couplings, both of which reduce the flexibility and efficiency of the embedding and subsequent computation.
Further techniques of embedding graphs into a lattice of qubits are described in U.S. patent application Ser. No. 11/932,248.
Relational Databases
Many entities employ relational databases to store information. The information may be related to almost any aspect of business, government or individuals. For example, the information may be related to human resources, transportation, order placement or picking, warehousing, distribution, budgeting, oil exploration, surveying, polling, images, geographic maps, network topologies, identification, and/or security.
There are many alternative techniques of searching databases, though most approaches typically employ the preparation of one or more queries. For example, a technique is described in U.S. patent application Ser. No. 11/932,261, wherein a query is established in the form of a graph consisting of nodes and edges. In this technique, the entries in the database are used to generate database graphs, and each database graph is combined with the query graph to produce a set of association graphs. An association graph can then be used to evaluate the relation between the query graph and the corresponding database graph. In certain embodiments, an association graph is embedded onto a quantum processor comprising a set of qubits with the vertices of the association graph being represented by qubits and the edges of the association graph being represented by coupling devices between qubits. The qubits and coupling devices may be superconducting devices. The query corresponding to the association graph may be solved as a clique problem using the quantum processor. For example, the quantum processor may be evolved from a first or “initial” state to a second or “final” state, with the final state being representative of an arbitrary clique of the association graph or alternatively, a maximal clique or a maximum clique of the association graph. In certain embodiments, the query is best fulfilled by the database graph whose corresponding association graph produces the largest maximum clique.
Elastic Bunch Graph Matching
Elastic Bunch Graph Matching (EBGM) is a system for recognizing a single human face in a database of many unique facial images. Specifically, EBGM is a process by which an image of a human face is analyzed and a labeled graph representation is generated. The labeled graph representation is comprised of nodes and edges and is called an image graph. The nodes of the graph represent various “fiducial” points on the face (such as the eyes, nose, and mouth) and these nodes are weighted by sets of Gabor wavelet components called “jets.” The edges of the graph represent relationships between fiducial points and the edges are labeled with two-dimensional distance vectors. Subsequent to the automatic generation of an image graph representation by EBGM, facial recognition may be accomplished by comparing the image graph of a query image with the respective image graphs of all images in a database.
The automatic generation of an image graph in EBGM is accomplished by aligning the facial image with a generalized “bunch” graph. The bunch graph is essentially a model grid for which each individual fiducial point is labeled with a set (or “bunch”) of multiple jets rather than with one specific jet. The bunch graph overlays the facial image and the jet that best represents each fiducial point in the image is identified. The bunch graph therefore acts as a combinatorial entity, like a moldable mask. Edges in the bunch graph are sufficiently elastic that the resulting image graph may adapt to better fit the specific facial image. Initially, a bunch graph is defined manually and it grows in adaptability and accuracy as more and more facial images are incorporated into the bunch. More detailed descriptions of the process of EBGM may be found in Wiskott et al., Face Recognition by Elastic Bunch Graph Matching, IEEE Transactions on Pattern Analysis and Machine Intelligence, 19(7):775-779, 1997. An important point is that an increase in the accuracy of EBGM demands an increase in computational effort. For example, better accuracy may be obtained by increasing the number of fiducial points in a bunch graph. However, such an increase will demand greater computational effort in the EBGM image graph generation phase and lead to an image graph comprising a greater number of nodes and edges. Such a larger image graph demands more computational effort during the recognition phase when it is compared to all other image graphs in a database. As such, current techniques for automatic facial matching either do not produce the desired level of accuracy or they are too slow.
The problem of image matching is particularly well-suited to be solved on such quantum processors. Techniques of image recognition that are currently in practice are limited in their accuracy and are generally quite slow. Recognition accuracy depends on the accuracy of the graph representation, which itself ultimately depends on the number of image features identified. Traditionally, attempts to incorporate greater numbers of image features result in graph representations that are computationally exhaustive in the recognition process. Thus, some measure of accuracy is typically compromised to accommodate manageable computation times. By performing the recognition process on a quantum processor, recognition may be obtained with greater accuracy and/or more quickly than traditional methods.